The basic problem of color management lies in translating a color as described by one device (source) for use by another device (target) that will reproduce it. The target device may or may not describe color in the same way as the source device.
For example, say an end user selects a certain color for an object within a graphics application. When the graphic image is produced on a printer, the selected color should match, as closely as possible, the original color. The source color is described by the graphics application as a set of values: for example, in L*a*b color space the selected color might be L=50, a=60, b=80, a shade of red. If the target device, the printer, described color in the same way, and had available that particular shade of red in its ink set, all would be well. A color correspondence, or match, between the source and target devices has been effected perfectly. The problem, of course, is that the printer is very unlikely to actually have the color of ink requested. Color printers generally rely on a very limited set of ink colors to reproduce images, most often four color inks (CMYK) but sometimes as many as twelve (C3M3YKROGB) or more color inks. Since the target device doesn't have ink that matches the specified color, it must attempt to reproduce the color using one or another combination of inks from the limited set of colors it has available.
Therein lies the problem of color management: How does the printer determine how much of each of the available colors of ink to use in reproducing the specific source color? This problem can be subdivided into two smaller, more manageable problems:
1) When known quantities of ink from the available ink set are printed together, what colors result? Characterizing the range of colors that are reproducible can solve this problem by the target device. The device characterization entails printing and measuring a large number of sample colors for each set of ink colors and type of media used. The large data set thus generated must be post-processed to reduce the data set overall and to improve the quality of the data in best representing the gamut; and
2) By knowing the colors that result from mixing the inks in various combinations, how can solve the reverse problem of determining how much of each ink to use for a specified source color? Developing a computational model that translates, or transforms, the description of the color can solve this problem by the source device into a description of the color for the target device, or printer.
To solve these problems, a color management system requires three components: a reference color space, device profiles, and a color-matching engine.
The reference color space is one of the CIE-defined models (CIEXYZ, CIELAB, etc.). The reference color space (FIG. 1) is a family of mathematical models that describe color in terms of the three primary constituents that describe normal human color vision.
A device profile is a representation of how the color produced by a particular device, be it a scanner (input device), monitor (display device), or printer (output device), deviates from a color norm. For example, to profile a scanner, we scan a printed target containing known CIE color values, then compare the RGB values produced by the scanner. The deviation between target values and actual values are then noted and saved in the device profile. The deviation values are then used to make adjustments.
The color-matching engine does the work of adjusting colors for specific devices so that the color produced is consistent with the color requested. The engine needs both a source profile and a target profile. The source profile is typically the profile of the monitor on which an image is created, or the scanner on which an image is captured. The target profile is that of the printer. The color-matching engine evaluates the device-specific colors generated by a source device (e.g., monitor or scanner), usually RGB values, to determine the reference color space values (e.g., CIElab), then converts those reference color values into the device-specific process colors (e.g., CMYK, C2M2YK, CMYKROGB) of the target device, or printer.
A chief obstacle in successful color conversion is the difference in device color gamut. A device color gamut is the range of colors that the device is able to produce (FIG. 2). To specify the process of translation of an image to the color gamut of a destination device one uses the concept of rendering intent. This concept specifies the color gamut-matching strategy. According to the ICC specifications there are four rendering intents: relative calorimetric matching, perceptual matching and saturation matching and absolute colorimetric matching. In relative calorimetric matching, colors that are common to both devices (i.e., an input device and an output device are rendered exactly, while colors that fall outside the gamut of the target device are adjusted (or mapped) to the next-closest equivalent. Relative Colorimetric rendering intent is suitable for precise color matching. In perceptual rendering intent, every color may be adjusted, while overall color relationships are preserved. This method is successful because the human eye is sensitive to detecting color relationships but is less sensitive to detecting absolute colors. In the case of Saturation rendering intent the colors are pushed towards the gamut boundary such that the maximum saturation has been achieved. This type of color matching is suitable for graphics presentation. In the case of the Absolute Colorimetric rendering intent the native white point of the source image is been preserved instead of mapping to D50 relative. The product of mapping from a device-independent color space (Profile Connection Space, i.e. CIELab, RGB) to a device-dependent color representation of a printer or scanner is called a transform. A transform is basically a look-up table (LUT) that contains a large data set, or matrix, of color values (FIG. 3) representing the gamut of the target device (i.e., its range of reproducible colors) as applied to the reference color space (e.g., CIElab) for a particular ink/media combination. The LUT includes a data set that represents the reference color space and the matrix of color values representing the target device gamut is organized in relation to it. FIG. 4 illustrates a 6×6×6 3D matrix of color values represented as an exploded color cube. Matrix color data that must be interpolated from measured target patch data is shown as gray faces on the mini-cubes.
In operation, a source color is specified by an input device (e.g., a graphics application) and transmitted to an output device (e.g. a server/printer) for rendering an image. The source color (e.g., RGB=100,0,0) is first converted to the reference color space and then applied to the transform LUT to convert it to the applicable output color value. If an exact match is found in the matrix of color values contained in the LUT, that value is used to render the color in the target device's color space. Specifically, this involves the selection of the percentages of ink available in the color set (e.g., CMYK) needed to most accurately reproduce the specified source color. If an exact match is not found in the transform LUT, a transform value is created for the requested source color. This is done by the target device's operating software, which performs an interpolation from the closest set of color values in the LUT to the specified source color to render the output color.
An ICC profile is a description of the color rendering abilities of a particular target device, or printer. The ICC profile defines the gamut, or color range, of a target device, as well as how the device distorts color. ICC profiles make it possible to describe the color reproduction capabilities of devices manufactured by countless different vendors in a standard, portable format.
When an ICC workflow is used, a graphics application (e.g., Adobe PhotoShop) sends color data to the target device (e.g., server/printer) in the form of color separations: one separation for each process color used. Since the ICC profiles of the various devices have ensured that all necessary color correction has been applied, the target device, such as a printer sold under Assignee's trademark ColorMark, and in particular, Assignee's 8-color or 12-color printers, does not make any changes to the color data as it is processed to render a printed image.
Assignee's current state of the art printers create ICC profiles in the same manner as creating a transform. Both the transforms and ICC profiles may be created simultaneously, regardless of which type of color management the user prefers. An ICC profile may have a file extension of *.ICM, while another custom creatable transform may have an extension of *.CX. The end user incorporates generated ICC profiles into their ICC workflow by uploading the ICC files via an FTP link between the print server and their workstation.
Applicant has found that the state of the art has certain deficiencies, such as the fact that only a few graphics applications could use the ICC profiles created by the present assignee's state of the art system, sold under the trademark ColorMark+, especially with regard to extended process colors. This is because the ICC standard calls for the application to generate the color separations used by the target device (i.e., one separation for each process color used) and few graphics applications recognize more than four-color (CMYK) or six-color (CMYKRO) printers. In these cases, the user may be constrained to create images for printing using RGB color space and the transforms created by the present assignee's state of the art system, although the user could configure the desired printer, such as the present assignee's ColorMark+ printer, to use only 4-color or 6-color ink sets. Also, the ICC standard does not accommodate the use of spot colors: any spot color chosen in the application must be given its own color separation, which will not be understood by the system server.
Because ICC profiles are platform-independent (not to be confused with device-independent), some vendors have produced third-party software for creating ICC profiles of a given target device. The profile-creation process usually consists of printing a set of color samples for the target device, measuring the samples colormetrically, and then comparing the device's actual values with the desired values for the color samples. This approach for creating ICC profiles is less than desirable for two reasons. First, in order for profiling to work correctly, the device must produce its output without any additional color correction applied. However, for example, the print server marketed and sold under the trademark ColorSpan always applies color correction to printed output, except when ICC profiles have been selected. Second, even when using an ICC workflow, a corresponding custom transform must be selected on the server.
Therefore a new system and methodology for creating improved custom transforms is desired.